** Change History of DVIM72-Mac ** (reverse chronological order)
1.9.6
-----
Installed Show_help 2.1, for proper handling of suspend/resume.
Changed number of folder button in get-folder dialog, to work around
a Directory Assistance II bug.
Recompiled with THINK C 5.0.3.
1.9.5
-----
Installed Show_help 1.8 (or was it 2.0?) with movable modal dialog.
Fixed bug in Get_keyword that caused it to bomb if a \special had more
than 50 characters before an =.
1.9.4
-----
The previous version bombed on a Plus. The 'Cstr' resource named
CONSOLE_LOG_FILE was marked purgeable.
1.9.3
-----
Changed help text to explain that DVIM72-Mac does not crop pictures
the way OzTeX does.
1.9.2
-----
Added note about bigbird ftp site to the manual.
In setupbeachball(), used MoveHHi for CURS resources.
Changes to mac-specific and TextDisplay to alter the updating and
resizing behavior of the console window. Previously, increasing the
window size left an extra image of the grow icon.
Changed SPECIAL.c so that the bottom left, rather than the top left, of
a picture is placed at the location of \special, for compatibility with
OzTeX. Also allow scaling keywords. The Parse_special.c file was added
to help with this.
Updated Show_help to 1.6, to fix highlighting bug in Japan. Changed to
use of standalone SHow_help CUST resource.
1.9.1
-----
Added error message after AddResource in Find_prefs.
Recompiled with TC 5.0.2.
Added Show_help 1.5 with compression.
Moved HiliteMenu to end of Handle_menu_choice to improve behavior of
the keyboard menu.
Modified the beachball routines to use an 'acur' resource.
Defined g_DragRect using the gray region rather than the screen rectangle.
1.9
---
In PICT \specials, open the PICT with read-only permission.
1.9b16
------
Yet another change to Copy_banded(): I was assuming that if you CopyBits
with a source rectangle that extends outside the source bitmap, then
some sort of clipping would take care of it, but maybe not. Maybe you
could get an address error that way.
1.9b15
------
Reserve some temporary memory.
Introduced g_print_status global variable, so that we will be able to
do the right set of close operations in case of an error.
Started replacing some fatal() calls with Kill_dvi() calls.
Changed the manual to Geneva 9, since minimal systems may not have Geneva 10.
In Explain_print_error(), assume the spool file is on the startup volume.
Made Stack_space an inline function.
Added font and printer resolution to magnification log entry.
Reset basemag and runmag in dviinit.
In Copy_banded(), set dest_strip_depth from the iBandV number in the
print record, rather than using a constant 32. I hope this will fix a
problem with the LS when banding is on.
1.9b14
------
Recompiled with optimizations under ThC 5.0.1.
Added InitCursor on error after Open_printer().
Added Stack_space(), to replace Apple's StackSpace trap. Apparently it
was returning nonsense on 68000 machines.
1.9b13
------
Added PicComment after \special handing in prtpage(), because I saw a case
in which a PICT undid my PicComment. (ImageWriter-specific.)
Introduced "banding" setting, needed when printing on an ImageWriter, with
offscreen printing and high font resolution.
Added InitCursor() to Close_printer(), due to a report that cancelling very
quickly could leave the beachball cursor in place.
1.9b12
------
Introduced 'LONG' resource "\pheap reserve" to keep more space on the
app heap.
Replaced 72dpi radio button by 360dpi radio button.
Added InitCursor() call in Select_folder(). Under 6.0.7, the watch cursor
was staying around after the SF dialog went away.
1.9b11
------
Change to user interface for selecting the font folder, using the file
Select_folder.c.
Make help key bring up online manual.
Added balloon help to the Other Commands box in the print job dialog,
using the Append2hdlg routine.
Call Close_printer() from Handle_print if aborted before dvifile, as in
a nonsense command in "other commands". Slight change to Close_printer()
to look at g_abort_dvi instead of PrError.
Turned off all optimizations for now.
1.9b10
------
Fixed a bug in sillynewpool(), where I used sizeof(pool), where pool is
a *pointer* to a sillypool, instead of sizeof(sillypool).
Changed dialog filter to use Cancel_key and look for return and enter
by character code rather than key code.
1.9b9
-----
No code changes, just changed SIZE resource and included command-P as an
equivalent for the Print menu item.
1.9b8
-----
Drag grow icon in console window.
Added InitCursor() on resume event.
Handle command-period per TN 263, "International Cancelling".
Fixed bug in growsillypool().
1.9b7
-----
Increased MAXPAGE from 200 to 999.
Optimizations turned off pending patches.
1.9b6
-----
Call Set_pic_procs() only when we are not drawing offscreen.
Changed Set_pic_procs() to use MALLOC instead of NewPtr().
Increased the extra stack space, and made it a parameter stored in
a resource. Motivated by a type 28 error report.
Inserted StackSpace() check in Printer_idle().
Changed resource type of print record from PREC to Prec, per Q & A Stack.
Turned on a couple of optimizations.
1.9b5
-----
Sillymalloc had been testing the wrong bit for real temp memory.
Took out DebugStr("\pNewPtr for print");
from Set_pic_procs();
1.9b4
-----
Refined the dvi filter.
Rebuilt with THINK C 5.0.
Change popup font name format menu to pop-down.
1.9b3
-----
Added some balloon help.
Moved Maximize_resolution() to before the job dialog, which I hear
may be more device-independent. Also introduced Reset_resolution().
Call Update_memory_indicators() on resume event.
Call Init_print_rec() in Do_page_setup(). Previously, if you tried a
page setup before printing, you crashed because g_print_rec_h was nil.
Replaced some Show_error(), alldone() pairs by fatal() in mac_specific
and Find_prefs.
Added Edit menu. It works in the Settings dialog under system 7
automagically.
1.9b2
-----
Fixed bug wherein the online manual did not work under System 6.
1.9b1
-----
Changed memory management, with sillymalloc, to take advantage of
temporary memory.
Switched order of dviterm() and Close_printer() so as to free font memory
as soon as possible.
Use QuickDraw to manipulate the bitmap in fillrect() and dispchar().
Use a separate preferences file.
Removed the page image bitmap.
Allow colon in PICT \special syntax, e.g.
\special{pict: drive:folder:filename}
Allow cancelling with escape as well as command period.
Changed interface, with many settings removed.
Online manual added.
v. 1.8.4
--------
Added an FREF for type ODVI, and mstr resources specifying
the “Print…” menu item as equivalent to Open. Now with
Super Boomerang, dvi files can appear in a Direct Open menu.
Removed the DisposPtr( nameformat ); statement from the
fontfile() routine. Since nameformat was a master pointer
to a resource, this was not a good thing to do.
v. 1.8.3
--------
Added an option in the “Memory Options...” dialog to change
the MultiFinder partition size.
Explicitly closed the console log file. The file was not getting closed under
Finder, but was getting closed under MultiFinder. Thus only those
unfortunates who were not running MultiFinder had a problem with this.
Merged the code of abortrun() into alldone() and removed the g_errenc global.
v. 1.8.2
------
The SFGetFolder DLOG and DITL resources are now unpurgeable.
This is just a guess as to what might have caused a crash
when attempting to reset the font folder.
The version number in the About box is now read from the
‘vers’ resource, so I only have to change the version number
in one place.
Added some EventAvail calls at startup so we would be in the
foreground before the windows appear.
v. 1.8.1
------
Fixed a bug in the custom WDEF (window definition). The
only effect of this bug that I know of is that it sometimes
caused the upper corners of the screen to be gray instead of
the usual black.
v. 1.8
-----
Added more event-handling during printing. For instance it
is now possible to bring the page-preview window to the
front during printing. It is also now possible for printing
to continue while in the background under MultiFinder.
When using spooled printing, the dialog now says “Now
Spooling” while spooling, and “Now Printing” when printing,
instead of saying “Now Printing” during the whole process.
It is now possible to change printer resolution (but not
font resolution) without restarting the program.
v. 1.7.1
------
Fixed a bug introduced in 1.7 that prevented one from changing resolution.
v. 1.7
------
Added a FlushVol after anything is written to the console, to make sure
the log file will be up to date in the event of a crash.
Removed the .dvi-err log files, since they duplicated information in the
console log file.
In the Configure->Printing Options dialog, I added “Use Driver Defaults”
radio controls for paper feed and printing method. This is for greater
compatibility with non-ImageWriter printers. The WriteMove printer, in
particular, uses a paper feed setting other than hand or fanfold.
Freed some memory at the beginning of the fatal() routine, to make it
more likely that an out-of-memory error will lead to a peaceful exit
rather than a crash.
v. 1.6
-----
Previously, if you tried to print when the console window was frontmost,
the application hung. I have fixed that by re-implementing the console
with my own routines rather than the THINK C console library routines.
v. 1.5
-----
I split the Configure dialog into 4 dialogs, invoked from a new
Configure menu. The main reason was to make room for specifying
font resolution and printer resolution separately.
PICT file \specials are now allowed. The picture is scaled so that it
will be the same size as on the screen, independent of printer resolution.
The dialogs now support cutting and pasting, and allow the Cancel
button to be invoked with command-period, escape, or tilde.
When the driver puts band data into the print record, DVIM72-Mac uses
the band size for printing. For instance on the ImageWriter, it prints
32 rows of dots at a time. Previously, 32 was used as a default for
printers that put 0 in the band size parameter. Now the value 3600
is used, meaning that the whole page should be printed at once.
v. 1.4
-----
Improved the performance of cancelling printing with command-period.
You can now keep an eye on free memory with an optional window. There
is a new check box in the Configure dialog that selects this option.
There is also a new option to use the system heap for font memory when
the application heap runs low.
v. 1.3
-----
A bug in handling of multiple copies has been fixed.
In spooled mode, the Draft radio control in the print job dialog is now
disabled. At 72dpi, Best is also disabled. This change involves
looking for radio controls named "Best", "Faster", and "Draft", so it
will not work for foreign-language systems. However, you can fix this
by using ResEdit to change the values of the 'STR ' resources numbered
700, 701, 702 to the local equivalents of "Best", "Faster", and "Draft".
(It's a good thing I'm not trying to *sell* this software, or I'd never
get away with stuff like that.)
Certain printing errors now bring up an explanatory alert instead of just
an error code.
v. 1.2
-----
The previous version had a call to Color Quickdraw, which caused a bomb
on machines that did not have Color QuickDraw. That has been corrected.
There was also a minor change in the way SF dialogs are centered on the
screen.
v. 1.1
-----
The past few versions had a bug which, when used with some
*non-ImageWriter* drivers, caused the program to go into an infinite
loop. In detail: DVIM72-Mac prints the image in strips, and used a
certain parameter in the print record to determine the depth of the
strip. But for some drivers (such as MacPrint for the DeskJet) that
parameter is zero. Now I check for that condition.
I also fixed a bug that caused an incorrect position to be recorded for
the page window if it were never shown (i.e., if you ran the program,
changed your mind, and quit without printing anything.)
I have rearranged some of the printing code, and added a "Page Setup…"
menu item. These changes will probably be irrelevant to ImageWriter
users, but may help those with other printers.
v. 1.0
-----
Does the version 1.0 mean that the program is in a final, stable form?
Of course not. I just ran out of numbers smaller than 1.0.
I now use a standard printing job dialog (whose appearance depends upon
the printer selected in the Chooser) rather than my own dialog. This
is intended to enhance device-independence. I have eliminated the
start-up check that an ImageWriter has been selected, since the job
dialog will show you which driver is in effect.
The Configure… dialog no longer has a "Skip print dialog" check box.
Instead, I have added a "Just Print…" menu item.
There is now a beachball cursor instead of a watch cursor, which rolls
when a page is being computed. There are some times when the Printing
Manager has control and I haven't been able to get the beachball to roll,
however.
The positions and sizes of the windows are remembered when you quit.
The next time you start, they are restored, so long as they are
entirely on the screen.
v. 0.9b9
-------
The one-dot kludge for draft-mode printing introduced in the previous
version has been replaced by a technique of printing the bitmap in strips. I have also introduced an option for spooled printing. Although spooled printing is probably less efficient for an ImageWriter, it is probably more device-independent. Therefore, if you're trying to use DVIM72-Mac for a printer other than an ImageWriter, try spooled mode first. As another attempt to help those with weird printers and drivers, I added an "Other" resolution option. I rearranged the Configure dialog to fit these new items in.
There was another minor change for A/UX compatibility.
Also simplified the code for the font path. No big deal.
v. 0.9b8
-------
There is a bug in draft-mode bitmap printing, apparently in the
ImageWriter driver or the Printing Manager, which makes printing
fail at 144dpi if the top .8 inches or so of the image is blank.
The printer prints a digit, does a line feed, and stops. This
can also occur at 72dpi if the page is completely blank. The "fix"
in this version is to put one dot at position (0,0) in the bitmap.
While trying to diagnose the problem above, I put in a window which
displays the bitmap just before it gets sent to the printer. I decided
it was kind of cute and left it in. What do you think? By the way,
both this new page preview window and the console window are movable
and resizable, even though they don't have grow boxes.
I also changed the memory management, replacing malloc() calls by
NewPtr() calls.
v. 0.9b7
-------
Fixed a bug that made the font folder button fail if the folder was
not on the startup disk. Also fixed an event-handling bug that
affected DAs not running under DA handler.
v. 0.9b6
-------
Mostly minor changes to the user interface. The most significant thing
is that the Configure dialog now has a popup menu that selects the
formats by which to search for fonts. For instance, if all of your
fonts are in one folder, with magnification indicated in the file
extension as in "cmr8.72pk", then it is enough to check just the
"cmr8.72pk" item. The other items assume that your fonts are arranged
in subfolders according to magnification. The last three have the
subfolder name separated from the font name by a slash rather than a
colon; these are intended only for A/UX.
(Does DVIM72-Mac run under A/UX? Beats me. Try it and let me know.)
v. 0.9b5
-------
Now instead of filling in the Configure dialog's font folder path by
hand, you click a button which brings up a Standard File dialog.
v. 0.9b4
-------
Fixed a bug that caused printing to be much slower than necessary.
Also, the page image bitmap is now part of an offscreen GrafPort; this
has little or no effect on present performance, but will make it easier
to add \specials in the future.
v. 0.9b3:
-------
A 300dpi option has been added. I have not tested this myself, for lack
of an appropriate printer. If you try this, you should jack up the
application's MultiFinder partition to a megabyte or so.
More error checking has been introduced.
v. 0.9b2:
-------
The notes accompanying version 0.9b claimed that you needed to put
linefeeds in the texfonts.sub file. That was incorrect.
A fatal error now puts up an alert box, so you at least get to read the
error message before the program quits.
At program start, the program checks to make sure that you have selected
the ImageWriter resource in the Chooser, and warns you if not.